home *** CD-ROM | disk | FTP | other *** search
- package koala.dynamicjava.interpreter;
-
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.Reader;
- import java.io.StringReader;
- import koala.dynamicjava.parser.wrapper.JavaCCParserFactory;
-
- public class Main {
- private static String appname;
-
- public static void main(String[] var0) {
- appname = var0[0];
- String var1 = "standard input";
- String var2 = "";
- String var3 = "";
- Object var4 = System.in;
- String var5 = null;
- String var6 = null;
- TreeInterpreter var7 = new TreeInterpreter(new JavaCCParserFactory());
- var7.addLibrarySuffix(".java");
- int var8 = 1;
-
- while(var0.length > var8) {
- if (var0[var8].equals("-lp")) {
- ++var8;
- if (var0.length <= var8) {
- usage();
- return;
- }
-
- var2 = var0[var8++];
- } else if (var0[var8].equals("-cp")) {
- ++var8;
- if (var0.length <= var8) {
- usage();
- return;
- }
-
- var3 = var0[var8++];
- } else {
- if (!var0[var8].equals("-i")) {
- if (var0[var8].equals("-h")) {
- usage();
- return;
- }
-
- if (var0[var8].equals("-c")) {
- ++var8;
- if (var0.length <= var8) {
- usage();
- return;
- }
-
- var6 = var0[var8++] + ".main(new String[] {";
- if (var8 < var0.length) {
- var6 = var6 + '"' + var0[var8++] + '"';
- }
-
- while(var8 < var0.length) {
- var6 = var6 + ", " + '"' + var0[var8] + '"';
- ++var8;
- }
-
- var6 = var6 + " });";
- }
- break;
- }
-
- ++var8;
- if (var0.length <= var8) {
- usage();
- return;
- }
-
- var5 = var0[var8++];
- }
- }
-
- if (var0.length > var8 + 1) {
- usage();
- } else {
- setLibraryPath(var7, var2);
- setClassPath(var7, var3);
- if (var5 != null) {
- try {
- FileInputStream var9 = new FileInputStream(var5);
-
- try {
- var7.interpret(var9, var5);
- } catch (InterpreterException var15) {
- System.err.println(var15.getMessage());
- } catch (Throwable var16) {
- System.err.println(var16);
- }
- } catch (FileNotFoundException var17) {
- System.out.println("File " + var5 + " not found.");
- return;
- }
- }
-
- if (var0.length > var8) {
- var1 = var0[var8];
-
- try {
- var4 = new FileInputStream(var1);
- } catch (FileNotFoundException var14) {
- System.out.println("File " + var1 + " not found.");
- return;
- }
- }
-
- try {
- if (var6 != null) {
- var7.interpret(new StringReader(var6), "main method call");
- } else {
- if (var4 == System.in) {
- System.out.println("Reading from standard input");
-
- while(true) {
- String var25 = "";
- InputStreamReader var10 = new InputStreamReader((InputStream)var4);
- int var11 = 0;
-
- int var13;
- for(int var12 = 0; var11 < 2 && var12 < 2; var25 = var25 + (char)var13) {
- var13 = ((Reader)var10).read();
- if (var13 == 10) {
- ++var11;
- } else if (var13 == 13) {
- ++var12;
- } else {
- var11 = 0;
- var12 = 0;
- }
- }
-
- Object var26 = var7.interpret(new StringReader(var25), var1);
- System.out.println("=> " + var26);
- }
- }
-
- var7.interpret((InputStream)var4, var1);
- }
- } catch (InterpreterException var18) {
- System.err.println(var18.getMessage());
- } catch (Throwable var19) {
- var19.printStackTrace();
- System.err.println(var19);
- }
-
- if (var4 == System.in) {
- System.out.println("Interactive loop stopped");
- }
-
- }
- }
-
- private static void setLibraryPath(Interpreter var0, String var1) {
- int var2;
- while((var2 = var1.indexOf(58)) != -1 || (var2 = var1.indexOf(59)) != -1) {
- var0.addLibraryPath(var1.substring(0, var2));
- var1 = var1.substring(var2 + 1, var1.length());
- }
-
- var0.addLibraryPath(var1);
- }
-
- private static void setClassPath(Interpreter var0, String var1) {
- int var2;
- while((var2 = var1.indexOf(58)) != -1 || (var2 = var1.indexOf(59)) != -1) {
- var0.addClassPath(var1.substring(0, var2));
- var1 = var1.substring(var2 + 1, var1.length());
- }
-
- var0.addClassPath(var1);
- }
-
- private static void usage() {
- System.out.println("Usage:");
- System.out.println(" " + appname + " [options] [file]");
- System.out.println(" or");
- System.out.println(" " + appname + " [options] -c classname [args ...]");
- System.out.println("Options:");
- System.out.println(" -cp path the class path ((semi)colon separated paths)");
- System.out.println(" -lp path the library path ((semi)colon separated paths)");
- System.out.println(" -i file the initialization file");
- }
- }
-